Storage space is a critical resource on computing devices such as mobile telephones, tablets, and other small form factor devices. One of the major consumers of storage space on such computing devices is an operating system and pre-installed software that comes bundled with the computing device. Some existing systems reduce storage space consumption on the computing devices by removing functionality from the operating system, or by providing fewer pre-installed applications. However, removing functionality from the operating system can create compatibility problems, and removing pre-installed applications degrades the user experience for a new computing device.
Data compression reduces the storage space requirement for data depending on the particular compression algorithm used and/or the data itself. Some existing systems install the operating system on the computing device from a compressed version of the operating system. In such systems, every file is written to the persistent memory at least twice, sometimes even three times. For example, the compressed operating system is first copied to a target volume, and then decompressed into additional storage. In some cases, to provide recovery from a system crash, a compressed copy of the operating system and user data is also created and stored. As the size of operating systems continues to grow, the storage space consumption with the existing systems continues to increase resulting in higher costs for the computing devices or to a poor user experience.